package com.px.web.controller.domain;

import java.math.BigDecimal;
import java.util.List;

import cn.hutool.json.JSONArray;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import com.px.common.annotation.Excel;
import com.px.common.core.domain.BaseEntity;

/**
 * 区域对象 area
 *
 * @author WRJ
 * @date 2024-08
 */
@Data
public class Area extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 区域ID */
    @ApiModelProperty(value = "区域ID")
    private Long areaId;

    /** 父级ID */
    @ApiModelProperty(value = "父级ID")
    @Excel(name = "父级ID")
    private Long parentId;

    /** ID层级 */
    @ApiModelProperty(value = "ID层级")
    @Excel(name = "ID层级")
    private String idPath;

    /** 名称 */
    @ApiModelProperty(value = "名称")
    @Excel(name = "名称")
    private String name;

    /** 类型.29=? */
    @ApiModelProperty(value = "类型.29=?")
    @Excel(name = "类型.29=?")
    private Integer type;

    /** 地址 */
    @ApiModelProperty(value = "地址")
    @Excel(name = "地址")
    private String address;

    /** 城市名称 */
    @ApiModelProperty(value = "城市名称")
    @Excel(name = "城市名称")
    private String city;

    /** 区域颜色 */
    @ApiModelProperty(value = "区域颜色")
    @Excel(name = "区域颜色")
    private String color;

    /** 国家编码.如CN */
    @ApiModelProperty(value = "国家编码.如CN")
    @Excel(name = "国家编码.如CN")
    private String country;

    /** 数据源.0,2 */
    @ApiModelProperty(value = "数据源.0,2")
    @Excel(name = "数据源.0,2")
    private Integer dataSource;

    /** 描述 */
    @ApiModelProperty(value = "描述")
    @Excel(name = "描述")
    private String description;

    /** 高度 */
    @ApiModelProperty(value = "高度")
    @Excel(name = "高度")
    private BigDecimal height;

    /** 纬度 */
    @ApiModelProperty(value = "纬度")
    @Excel(name = "纬度")
    private BigDecimal lat;

    /** 经度 */
    @ApiModelProperty(value = "经度")
    @Excel(name = "经度")
    private BigDecimal lng;

    /** 等级.2=禁飞区,3=加强警示区 */
    @ApiModelProperty(value = "等级.2=禁飞区,3=加强警示区")
    @Excel(name = "等级.2=禁飞区,3=加强警示区")
    private BigDecimal level;

    /** 地理图形 */
    @JsonIgnore
    @ApiModelProperty(value = "地理图形")
    @Excel(name = "地理图形")
    private String polygon;

    /** 半径 */
    @ApiModelProperty(value = "半径")
    @Excel(name = "半径")
    private BigDecimal radius;

    /** 图形.0=圆形,1=多边形 */
    @ApiModelProperty(value = "图形.0=圆形,1=多边形")
    @Excel(name = "图形.0=圆形,1=多边形")
    private BigDecimal shape;

    /** 相关地址 */
    @ApiModelProperty(value = "相关地址")
    @Excel(name = "相关地址")
    private String url;

    /** 生效时间起 */
    @ApiModelProperty(value = "生效时间起")
    @Excel(name = "生效时间起")
    private Integer beginAt;

    /** 生效时间止 */
    @ApiModelProperty(value = "生效时间止")
    @Excel(name = "生效时间止")
    private Integer endAt;

    /** 是否外部数据 */
    @ApiModelProperty(value = "是否外部数据")
    @Excel(name = "是否外部数据")
    private String external;

    @JsonIgnore
    @ApiModelProperty(value = "地理图形JSON")
    String polygonJson;

    @ApiModelProperty(value = "地理图形点信息")
    JSONArray polygonPoints;

    @ApiModelProperty(value = "子区域")
    List<Area> subAreas;
}
